package cn.tedu.order.management.service;

import cn.tedu.common.pojo.authentication.CurrentPrincipal;
import cn.tedu.common.pojo.vo.PageData;
import cn.tedu.order.management.pojo.entity.Order;
import cn.tedu.order.management.pojo.param.OrderAddNewParam;
import cn.tedu.order.management.pojo.vo.OrderAdminListVO;
import cn.tedu.order.management.pojo.vo.OrderStaffListVO;
import cn.tedu.order.management.pojo.vo.UserOrderVO;

import java.util.List;

public interface IOrderService {

    Long create(CurrentPrincipal currentPrincipal, OrderAddNewParam orderAddNewParam);

    void deleteById(Long id);

    PageData<OrderAdminListVO> listForAdmin(Integer pageNum);
    PageData<OrderAdminListVO> listForAdmin(Integer pageNum, Integer pageSize);


    UserOrderVO listUserById(Long id);

    List<UserOrderVO> list(CurrentPrincipal currentPrincipal);

    void updateState(Long serialNumber, Integer state);

    PageData<OrderStaffListVO> listForStaff(CurrentPrincipal currentPrincipal, Integer pageNum);
    PageData<OrderStaffListVO> listForStaff(CurrentPrincipal currentPrincipal, Integer pageNum,Integer pageSize);
}
